<?php
class Pdosondage extends PdoConnect {
    
    public function readAll() {
        try {
            $this->open();
            $sql = "SELECT * From `sondage` ORDER BY IDSONDAGE";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();
            $prep->setFetchMode(PDO::FETCH_ASSOC);


            return $prep;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }
    public function create(sondage $sondage) {
        try {
            $this->open();
            $sql = "INSERT INTO `sondage`(IDSONDAGE, TITRESONDAGE, nbrchoix) VALUES(?, ?, ?)";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $sondage->getIDSONDAGE(), PDO::PARAM_INT);
            $prep->bindValue(2, $sondage->getTITRESONDAGE(), PDO::PARAM_STR);
            $prep->bindValue(3, $sondage->getnbrchoix(), PDO::PARAM_INT);
//            $prep->bindValue(3, $sondage->getnbrvotant(), PDO::PARAM_INT);
//            $prep->bindValue(4, $datedebut->getdatedebut(), PDO::PARAM_STR);
            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readOne($IdSondage) {
        try {
            $this->open();
            $sql = "SELECT * FROM `sondage` WHERE IDSONDAGE=$IdSondage";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();

            $sondage = new Sondage();
            $ligne = $prep->fetch(PDO::FETCH_OBJ);
            $sondage->setIdSondage($ligne->IDSONDAGE);
            $sondage->setTitreSondage($ligne->TITRESONDAGE);
            $sondage->setnbrvotant($ligne->nbrvotant);
            $sondage->setdatedebut($ligne->datedebut);
            $sondage->setnbrchoix($ligne->nbrchoix);


            return $sondage;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }
    
    public function readLast() {
        try {
            $this->open();
            $sql = "SELECT * FROM `sondage` ORDER BY IDSONDAGE DESC LIMIT 1";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();

            $sondage = new Sondage();
            $ligne = $prep->fetch(PDO::FETCH_OBJ);
            $sondage->setIdSondage($ligne->IDSONDAGE);
            $sondage->setTitreSondage($ligne->TITRESONDAGE);
            $sondage->setnbrvotant($ligne->nbrvotant);
            $sondage->setdatedebut($ligne->datedebut);
            $sondage->setnbrchoix($ligne->nbrchoix);


            return $sondage;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function delete(sondage $sondage) {

        try {
            $this->open();
            $sql = "DELETE FROM sondage WHERE IDSONDAGE=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $sondage->getIdSondage(), PDO::PARAM_INT);
            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function update(sondage $sondage) {
        try {
            $this->open();
            $sql = "UPDATE `sondage` SET TITRESONDAGE = ? WHERE IDSONDAGE=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $sondage->getTitreSondage(), PDO::PARAM_STR);
            $prep->bindValue(2, $sondage->getIdSondage(), PDO::PARAM_INT);

            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }
        public function updatenbrvotant(sondage $sondage) {
        try {
            $this->open();
            $sql = "UPDATE `sondage` SET nbrvotant = nbrvotant+1 WHERE IDSONDAGE=?";

            $prep = $this->pdo->prepare($sql);

//            $prep->bindValue(1, $sondage->getNbrVotant(), PDO::PARAM_INT);
            $prep->bindValue(1, $sondage->getIdSondage(), PDO::PARAM_INT);

            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function exist($IdSondage) {
        $this->open();
        $query = "SELECT * FROM sondage WHERE IDSONDAGE='$IdSondage';";
        $statement = $this->pdo->query($query);
        return $statement->rowCount();
    }
}
?>
